package cn.gyn.gynrpc.core.meta;

import com.alibaba.fastjson.JSON;
import lombok.Builder;
import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * 注册中心RC的入参_描述服务元数据
 * 不同的应用有同样的service也是可以区分的
 */
@Data
//builder模式
@Builder
public class ServiceMeta {
    //服务的应用
    private String app;
    //服务的命名空间、隔离、租户
    private String namespace;
    //服务的环境
    private String env;
    //服务的名字
    private String name;

    //比如版本号
    private Map<String, String> parameters = new HashMap<>();

    public String toPath() {
        //%s表示string，%d表示整数
        return String.format("%s_%s_%s_%s", app, namespace, env, name);
    }

    public String toMetas() {
        return JSON.toJSONString(this.getParameters());
    }
}
